The concept of “fuzzy theory” was introduced by Lofti Zadeh in the 1960's to allow imprecise decision-making and problem-solving tasks, such as medical diagnosis, to be understood quantitatively. Fuzzy theory is specifically designed to mathematically represent uncertainty and vagueness and provide formalized tools for dealing with the imprecision intrinsic to many problems. Unlike traditional computing which relies on precision, fuzzy theory resembles human reasoning in its use of approximate information and uncertainty to generate a decision.
Fuzzy theory implements classes or groups of data with boundaries that are not sharply defined (i.e. they are fuzzy). Any methodology or theory implementing “crisp” (precise) definitions such as classical set theory, arithmetic and programming may be “fuzzified” by generalizing the concept of a “crisp set” to a “fuzzy set” with blurred boundaries. For example, if it is assumed that a vehicle made in the United States is a “domestic” vehicle and a vehicle made elsewhere is a “foreign” vehicle, and if it is assumed that the set “U” is the set of all automobiles in Los Angeles, and it is desired to classify specific cars within the set “U” as being foreign or domestic, using crisp-set theory, this could be accomplished by simply examining the brand name (e.g. rules are set defining a Toyota as “foreign” and a Ford as “domestic”) of each automobile in the set “U”. However, consider a situation where a Toyota is manufactured in the United States using some parts made in Japan and others made in the United States. In fuzzy theory a rule could be set to define the percentage of parts for a specific car made in United States and to assign a degree of similarity to what is perceived to be a domestic or foreign car. For example, if 25% of the car parts for a Ford are made in the United States then the car could be considered similar to a domestic car to the degree of 0.25 and similar to a foreign car to degree of 0.75. In such a case, the fuzzy system could conclude, assuming the existence of appropriate rules, that the car is “foreign”. Thus, in fuzzy theory an element can reside with degrees of similarity.
Fuzzy theory utilizes linguistic variables whose values are not necessarily numbers, but could also be words and sentences. These linguistic variables are often characterized by membership functions. A membership function provides a measure of the degree of similarity (degree of membership) and the grade of the membership function is typically expressed by numerical values in the region of 0.0 to 1.0, and varies within this range.
Fuzzy logic systems encompassing principles of fuzzy theory emerged into the mainstream of information technology in the late 1980's and early 1990's. Currently most of the prior art fuzzy logic systems use pre-defined fuzzy rules. The fuzzy rules may be provided by experts in the field of use of the fuzzy logic system (e.g., by physicians for a medical diagnosis system) or they may be extracted from numerical data. In either case, the fuzzy rules allow the fuzzy logic systems to handle approximate information in a systematic way.
Fuzzy logic systems are helpful for controlling nonlinear systems and modeling complex systems where an inexact (ambiguous or vague) model exists. Today, fuzzy logic systems are found in a variety of control applications including chemical process control, manufacturing, and consumer products such as washing machines, video cameras, and automobiles. Typical examples of prior art fuzzy logic systems are described in U.S. Pat. No. 4,875,184 (Yamakawa); U.S. Pat. No. 5,193,144 (Tsutsumi et al.); U.S. Pat. No. 5,335,314 (Tsutsumi et al.); and U.S. Pat. No. 5,604,842 (Nishidi), all of which are incorporated herein by reference.
A traditional fuzzy logic system typically consists of a rule based membership function, and an inference procedure. The predetermined rules of the system are represented in a linguistic format e.g. “If x is A and (y is B and z is not C), then w is D.”
Here the “IF” is referred to as an “antecedent” and the “THEN” is referred to as a “consequent”. x, y, and z are input variables of the antecedent, and A, B, and C are membership functions thereof. w is a variable of the consequent and D is a membership function thereof. Typically, the membership functions, such as A, B, C, and D, are items of vague linguistic information such as “positive”, “negative”, “large”, “medium”, or “small”.
FIG. 6 depicts a typical prior art fuzzy logic system 10 that is widely used in control and signal processing applications. It contains four components: a fuzzy memory 20, a fuzzifier 30, a fuzzy inference engine 40 connected to the fuzzifier 30, and a defuzzifier 50 connected to the fuzzy inference engine 40.
The rules for the typical fuzzy logic system 10 are pre-defined and stored in the fuzzy memory 20. These rules are expressed as a collection of IF-THEN statements.
The fuzzifier 30 receives crisp inputs and generates a fuzzy input set. The inference engine 40 receives the fuzzy input set from the fuzzifier 30 and combines the fuzzy input set to the fuzzy rules received from the fuzzy memory 20. It then performs a fuzzy inference in accordance with the predefined rules and outputs a fuzzy output set to the defuzzifier 50. The defuzzifier 50 in turn generates an output comprising crisp numbers.
Thus, in a conventional fuzzy logic system, the membership functions and the fuzzy operators are the only variables that can change. The fuzzy rules are predefined, and once defined they are typically not changed because the time required to recalculate and change the rules is prohibitive. As such, it is not practical to use conventional fuzzy logic systems in applications in which fuzzy rules need to be frequently changed, such as in stock market forecasting, because of the tremendous time delays required in calculating and changing the fuzzy rules.
In general, a fuzzy logic rule includes the following variables: Features (e.g., temperature and sky's condition); cases (e.g. cold, hot, cloudy, sunny); operators (e.g., AND, OR, NOT); outputs (e.g. chance of rain); and qualifiers (e.g., high, low, somewhat, medium, very, slightly, none). Thus, for example, using the above examples in a weather prediction program, a rule might read: IF the temperature is hot AND the sky is very cloudy, then the chance of rain is somewhat high.”
It is known to utilize a genetic algorithm (GA) for deriving the membership functions and/or rules for a fuzzy logic system. See, for example, U.S. Pat. No. 5,727,130 to Hung, incorporated herein by reference. Prior art methods evolve the output and cases of fuzzy rules using GA's, but do not evolve or modify variables such as features, qualifiers, and operators, i.e., the features, qualifiers and operators of the prior art are considered as fixed values and not variable once they are selected at the beginning. Thus, it would be desirable to have a fuzzy logic system which is not limited by pre-defined fuzzy rules and which has the capability to automatically create and evolve fuzzy rules, features qualifiers, and operators in real-time for use in, for example, stock market forecasting.